package com.gnerv.sylvanas.business.manage.repository.mapper;

import com.gnerv.sylvanas.business.manage.model.dto.ApiGroupDTO;
import com.gnerv.sylvanas.business.manage.model.dto.ApiGroupTreeDTO;
import com.gnerv.sylvanas.business.manage.model.dto.ApiGroupTreeDetailsDTO;
import com.gnerv.sylvanas.business.manage.model.entity.ApiGroup;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author Gnerv LiGen
 */
@Mapper
public interface ApiGroupMapper {

    int insert(@Param(value = "apiGroup") ApiGroup apiGroup);

    int deleteByUkId(@Param(value = "ukId") String ukId);

    int updateByUkId(@Param(value = "apiGroup") ApiGroup apiGroup);

    ApiGroupDTO selectByUkId(@Param(value = "ukId") String ukId);

    List<ApiGroupDTO> selectListByName(@Param(value = "name") String name,
                                       @Param(value = "limitStart") int limitStart,
                                       @Param(value = "limitSize") int limitSize);

    int selectCountByName(@Param(value = "name") String name);

    List<ApiGroupTreeDTO> selectListTreeByParentUkId(@Param(value = "parentUkId") String parentUkId);

    List<ApiGroupTreeDetailsDTO> selectListTreeDetailsByParentUkId(@Param(value = "parentUkId") String parentUkId);
}




